home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Universe - The Gold Collection
/
Shareware Universe The Gold Collection.iso
/
music
/
dmp
/
dmp.go
next >
Wrap
Text File
|
1996-04-19
|
19KB
|
483 lines
DMP.DOC
Documentation for the Dual Module Player v4.00
Copyright (C) 1992,1995 Otto Chrons. All rights reserved
Dual Module Player is a program for playing music modules on different
sound systems on IBM PC compatible machines. It uses DSMI sound
programming interface (Digital Sound & Music Interface) to achieve
high quality sound and wide sound card support.
This packet includes both the realmode (DMP.EXE) and protected mode
(DMP32.EXE) versions of DMP. Usually DMP32 gives you better
performance and also more memory in the DOS shell but it may not work
very well under some multitaskers. You shouldn't even try to run
either version as a background task under Windows.
DMP32 and M2AMF use the PMODE/W DOS extender to run in 32-bit protected
mode under plain DOS. Thanks for PMODE/W go to Charles Scheffold and
Thomas Pytel.
DMP is careware so you can freely copy it to your friends and
distribute it to BBSes etc. If you like DMP you should send me some
money that will be directed to charity. See the end screen of DMP for
more information.
Currently DMP supports following module formats:
MOD,NST The original Amiga module format (SoundTracker,
NoiseTracker). Also supported by many PC trackers.
Original format supported only 4 channels but many
variants can support up to 32 channels.
STM,S3M Scream Tracker format. S3M can support up to 16
channels while STM is limited to 4.
669 Composer669 module format using 8 channels.
FAR Farandole tracker format capable of using 16 channels.
MTM MultiTracker format. It's a MOD variant with up to 32
channels.
AMF DSMI's internal module format. You can convert all the
previous formats to AMF with M2AMF but not vice versa.
Using AMF format saves you disk space because AMFs are
usually smaller than other module formats. DMP can
also load AMFs faster than other formats. But remember
that you cannot play AMFs on any other player, nor can
you convert AMFs back to any other format.
DMP is a simple program without any fancy graphics or mouse support.
Most DMP options can be set with command line parameters, or by
setting them into DMP envrionment variable or DMP.INI setup file.
This is the command line syntax of DMP:
DMP [options] [modulename] [@listfile] [options]
where,
[modulename] Name of the module (or modules) to play. Wild
cards are allowed.
[@listfile] name of a file containing a list of module names.
You can also use wild cards within the list file.
[options] DMP settings
-H, -? Show help screen about options.
-Nxx Set default panning to xx. Most
module formats don't support
default panning, the channels are
either left or right. With this
option you can bring the channels
close to the middle position.
Value 0 means middle panning, 63
sets the channels as much apart as
possible and 100 forces surround
sound.
-Fxx Select digital effect xx as the
default effect. Digital effects
are defined in DMP.INI
-E Disable extended (BPM) tempos. Use
this option if you encounter tempo
problems with old modules.
-L Inhibit looping. If you are
playing just one module DMP will
by default loop the module
forever.
-O Randomize the playing order of
modules.
-B Disable EMS usage.
-W[command] Run [command] after staring to
play the module. If you want to
give command line parameters to
[command], put quotation marks (")
around the option i.e.
"-Wdir *.mod"
If [command] exits with error
level 68, DMP terminates
immediately.
-X Inhibit all output. DMP writes
absolutely nothing on the screen.
Using default options
---------------------
If you find yourself using the same options all the time you can make
them default options by setting up a DMP evironment variable or
including them into DMP.INI.
For example,
You always want to use quality mode and sampling rate of 22kHz and
mono mode, put following line into your AUTOEXEC.BAT
SET DMP=-q -s22 -m
NOTE! You cannot override single letter options (-l,-o,-m,-q) with
command line parameters. All other options can be overriden.
Alternatively you can use the CmdLine parameter in DMP.INI for same
purpose.
Setting up your sound system
----------------------------
Before running DMP you must select and setup the sound driver with the
included DSETUP program. The program will let you choose a sound card
and then select the hardware setup and other options for that sound
device. Finally it saves the configuration into SOUND.CFG which DMP
uses to load and initialize the sound card driver.
Playing modules
---------------
DMP automatically goes to the file selection screen if no valid
modules have been selected on the command line.
You can also build up play lists for DMP (with an external shell
program for example). DMP reads this list file and scans each line for
a module name. There should be only one file name per line. The name
extension apply also for module names in play list.
Example:
DMP beyond.mod *.NST @goodmods
goodmods is a text file containing following lines:
occ-san.stm
stars.mod
intro3.s3m
DMP will play following modules: BEYOND.MOD, OCC-SAN.STM, STARS.MOD,
INTRO3.S3M and all .NST-files in the current directory.
Module file selector
--------------------
A new feature in DMP 4.00 is a handy module file selector that lets
you interactively make a playlist of modules and edit that list. You
can select modules from different directories and disk drives. Modules
can be sorted by filename, extension, module name, size and data both
in ascending and descending order. There is also a speed search
function with which you can quickly jump to a module matching the
search pattern. This feature works both for file name and module name.
Active key commands can be seen on the right side of the screen.
DMP configuration file DMP.INI
------------------------------
DMP has a config file called DMP.INI. It should be placed in the same
directory with DMP.EXE but DMP will also find it if it's somewhere in
the PATH. See the file itself for explanations on config switches and
strings.
DMP play screen and keys
------------------------
After DMP has loaded the first module and started to play it you see
the playback screen. In this screen you can find a lot of information
on the currently playing module, like the song name, how much memory
is used by the module, where the player is currently playing etc.
You also see channel specific information showing you the instrument
name that is playing on that track and also other sound parameters.
On the right are volume bars that give you an approximation of the
sound volume on that track.
Under the channel information is a list of instrument names. It is
quite common that composers use this space for some messages instead
of real instrument names.
Pressing 'H' brings up a quick-help showing keys that control the
program.
Keys:
F Go to module file selector.
P Pause module playback. Pressing any key
resumes.
1-9,0 Turn track 1-9 on/off. 0 turns selected track
on/off.
S Set selected track to solo mode i.e. all other
tracks are muted. Pressing 'S' again on the
same track unmutes other channels.
up/down Select a track.
left/right Jump to previous/next pattern.
pgup/pgdn Scroll instrument list up/down
F1-F10,+,- Set playback volume.
[,] Decrease/increase speed (module tempo).
{,} Decrease/increase module BPM tempo.
L,M,R,U Set panning to full left/middle/right or
surround.
, . Pan to left/right
V Select real/fake volume bars. Default is real.
E Select digital effect (not available on GUS).
Shows a menu where you can select the effect
with up/down or with numbers 0-9 and X.
N Stop playing current module and load next module.
B Stop playing current module and load previously
played module.
D DOS shell (write 'EXIT' to get back to DMP)
ESC Exit DMP.
Technical information
=====================
DMP uses software mixing routines to play up to 32 different digital
sounds on one mono/stereo digital channel of your sound system. With
Gravis Ultrasound, however, DMP uses the GUS onboard processor to do
all the sound mixing. The software mixing routines are highly
optimized assembly language and there are multiple routines to achieve
best performance with any sound system.
Quality mode
------------
Quality mode was orignally implemented only on 8-bit sounds cards to
overcome the dynamic limitation of 8-bits. It uses 16-bit mixing
routines to achieve 96dB dynamic range (instead of 48dB) and post
processes the 16-bit data into 8-bits with a look-up table that
amplifies the sound. Because of this post processing, the Quality mode
takes more processor power but it's worth it. To further amplify the
sound you can use '-Axx' command line option. Quality mode is always
enabled with 8-bit sound cards.
For 16-bit cards there's no need to use Quality mode to improve the
quality of the sound. But with up to 32 channels the dynamics of
individual channels go worse i.e. the volume is lower. You can of
course select an aplification option in the sound setup to amplify the
sound but there is always a risk of click and noise if the sound
overruns. This is where 16-bit Quality mode comes in. It uses a
temporary 32-bit buffer to do the mixing and post processes the buffer
by clipping values that can't fit to 16-bits. Unlike 8-bit Quality
mode, there is no default amplification in 16-bit Quality mode. 16-bit
quality mode is not enabled unless you use an amplification mode that
enables it.
Digital effects
---------------
New to DMP 3.00 was the support for digital effects. Currently you can
do reverb/echo style of effects and simple lowpass filtering. These
effects are only available on sound systems where DMP does the mixing
in software (i.e. the final sound data can be post processed), so you
cannot use them with GUS.
You can have up to 10 predefined effects (defined in DMP.INI) and
select between them while playing by pressing 'E' or with command line
parameter '-Fxx'.
Filters
You can use two different lowpass filters to filter the noise caused
by aliasing in mixing routines. These filters are really simple so
they don't use much processor power.
Filter 1 algorithm is defined as:
y(n) = 0.5*x(n) + 0.5*x(n-1)
Filter 2 is:
y(n) = 0.75*x(n) + 0.25*x(n-1)
Of course the actual filter routines use simple additions and shifts
instead of floating point multiplications to achieve best possible
speed.
See DMP.INI how to use these filters.
By default DMP uses the Filter 2 (this can be changed in DMP.INI or
with '-Fxx' command line parameter).
Reverb/echo effects
DMP uses a user definable reverb/echo engine to create effects from
massive reverbs to funny sounding echos. Here is the diagram of that
engine.
┌─────┐ ┌────────┐
│Input├─────────────────────────────────┬──┤ │ ┌──────┐
└─────┘ ┌────────┐ │ │ Filter ├──────────┤Output│
┌──────────────────────┤ ├────│──┤ │ └──────┘
│ ┌─────────────┤ Filter │ │ └────────┘
│ │ ┌───────┤ ├─┐ │
│ │ │ └────────┘ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ -----│
│ │ │ feedback\ G /│ G = gain
"echos"│ │ │ \_/ │
/ \ / \ / \ │ │ D = delay
/ G1\ / G2\ / G3\ │ │
----- ----- ----- │ │
│ │ │ ┌┴──┴┐
│ │ │ │ ++ │
│ │ │ └──┬─┘
│ │ │ │
│ │ │ │
D1 │ D2 │ D3 │ │
┌───┴────────┴─────┴───────────────┐ │
┌─┤ delay line │ │
│ └──────────────────────────────────┘ │
│ │
│ │
└─────────────────────────────────────────┘
The number of echos can be from one to eight and each has its own
position on the delay line and its own gain value. You can change the
number of echos and paramters for each echo in DMP.INI
[DigitalEffects] section. You can also set the "feedback" value.
You can also use negative gain values to create a 180 degree phase
shift.
The filters used in reverb are the same as in filter 1.
Setting a reverb in DMP.INI looks like following:
Effect1 = <effect_name> R <feedback> <echo 1 delay> <echo 1 gain> ...
See DMP.INI for examples on reverbs and echos.
Reverb performance
Calculating one echo in reverb engine requires a few simple arithmetic
instructions and one multiplication. In addition calculating feedback
requires another multiplication. So with a 6 echo reverb the routine
must do seven multiplications and lots of simple instructions for EACH
AND EVERY SAMPLE from input. In comparison the mixing routines in the
actual sample playback engine require only a few simple instructions
per sample.
Unless you have a powerful 486 it's not wise to use stereo mode
because this doubles the reverb overhead. Even on a 486/33 using
reverb with 44kHz stereo data can bring the machine on its knees. On
slower machines you will start to hear the playback buffer repeating
as DMP can't keep up with sound card DMA.
Using simple echos requires a lot less processor computing power, it's
all dependant on the number of echos.
Also notice that the reverb engine in DMP32 a bit more powerful than
the one used in DMP because DMP32 can effectively make use of 32-bit
instructions.
Contacting the author
=====================
If you have suggestions/questions/problems about DMP, feel free to
contact the author. Email is preferred.
Mail address:
Otto Chrons
Vaajakatu 5 K 199
FIN-33720 TAMPERE
FINLAND
Internet e-mail:
otto.chrons@cs.tut.fi
Internet WWW page:
http://www.cs.tut.fi/~c142092
Getting new versions of DMP
---------------------------
Newest version is always available at:
Internet FTP:
-------------
ftp.cdrom.com /pub/demos/music/programs/players
For a distribution site near you, check out SUPPORT.DMP.
See DMP.REV for revision history.